import { getSign } from '@/utils/sign.js'
const install = (Vue, vm) => {
	// 此为自定义配置参数，具体参数见上方说明
	// 这里的vm，就是我们在vue文件里面的this，所以我们能在这里获取vuex的变量，比如存放在里面的token变量
	Vue.prototype.$u.http.setConfig({
		// baseUrl: 'https://dhpapi.pro.xzusoft.com/member',
		// baseUrl: 'https://yxpt.xzusoft.com/member',
		baseUrl: 'https://yxpt.test.xzusoft.cn/member',
		loadingText: '努力加载中~',
		loadingTime: 100,
		originalData: true
	});
	// 请求拦截，配置Token等参数
	Vue.prototype.$u.http.interceptor.request = (config) => {
		// 引用token
		// 方式一，存放在vuex的token，假设使用了uView封装的vuex方式
		// 见：https://uviewui.com/components/globalVariable.html
		console.log("555555555");
		// #ifdef  MP-WEIXIN
			config.header = {
				'appid':'wx0b0f65b3eb8511bb',
				// 'appid':'wxce0b12f1db7eeace',
				'X-Session_Id': vm.$u.guid(),//会话id
				'utoken': vm.vuex_token ? vm.vuex_token : ''
			}
		// #endif

		// #ifdef  MP-ALIPAY
			config.header = {
				'appid':'2021003156639349',
				'X-Session_Id': vm.$u.guid(),//会话id
				'utoken': vm.vuex_token ? vm.vuex_token : ''
			}
		// #endif

		// #ifdef  MP-TOUTIAO
			config.header = {
				'appid':'ttebc79d7a74f9bbc201',
				'X-Session_Id': vm.$u.guid(),//会话id
				'utoken': vm.vuex_token ? vm.vuex_token : ''
			}
		// #endif
		// console.log(config.data);
		if(vm.$u.test.isEmpty(config.data)){
			config.data = {};
		}
		if (config.data.sharer_id == undefined) {
			config.data.sharer_id = ''
		}
		config.data.timestamp = new Date().getTime();
		config.data.sign = getSign(config.data);
		// 可以对某个url进行特别处理，此url参数为this.$u.get(url)中的url值
		if(vm.$u.test.isEmpty(vm.vuex_token)){
			if(config.url == '/login' || config.url == '/complex' || config.url == '/api/ticket/list' || config.url =='/api/user/register_submit'){
				
			}else{ 
				// vm.$u.toast('验证失败，请重新登录');
				// setTimeout(() => {
				// 	vm.$u.route('/pages/index/index')
				// }, 1500);
				return false;
			}	
		}
		// 最后需要将config进行return
		return config;
		// 如果return一个false值，则会取消本次请求
		// if(config.url == '/user/rest') return false; // 取消某次请求
	}
	// 响应拦截，判断状态码是否通过
	Vue.prototype.$u.http.interceptor.response = (res) => {
		if(res.statusCode == 200) {
			return res.data.data;
		} else if (res.statusCode == 401) {
			vm.$u.toast('验证失败，请重新登录');
				// vm.$u.route('/pages/index/index')
			setTimeout(() => {
				vm.$u.vuex("vuex_token",'')
			}, 1000);
			return false;
		} else if (res.statusCode == 402){
			// 支付失败
			return false;
		} else {
			vm.$u.toast(res.data.msg);
			return false;
		}
	}
}

export default {
	install
}